Virtual private network

ABSTRACT

A virtual private network is disclosed. The network may include a first private network including a first firewall interposed between a first private network and a public network and a second firewall interposed between a first client machine and the first firewall machine. The network may include a second private network including a third firewall interposed between the second private network and the public network, and a fourth firewall interposed between a second client machine and the third firewall. An encrypted path is provided for traffic flowing between the first and second client machines over the public network. The encrypted path comprises encryption of a first type for traffic the first and second firewalls and the third and fourth firewalls, and encryption of a second type is used between the first and second private networks for traffic flowing over the public network.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationSer. No. 10/701,011, filed Nov. 3, 2003, which is a continuation ofco-pending U.S. patent application Ser. No. 10/210,326, filed Aug. 1,2002, which is a continuation of co-pending U.S. patent application Ser.No. 09/552,476, filed Apr. 18, 2000, which is a continuation of U.S.patent application Ser. No. 09/299,941, filed Apr. 26, 1999, now issuedas U.S. Pat. No. 6,052,788, which is a continuation of U.S. patentapplication Ser. No. 08/733,361, filed Oct. 17, 1996, now issued as U.S.Pat. No. 5,898,830.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to computer network security and moreparticularly to firewalls, i.e., a combination of computer hardware andsoftware that selectively allows “acceptable” computer transmissions topass through it and disallows other non-acceptable computertransmissions.

2. State of the Art

In the space of just a few years, the Internet--because it providesaccess to information, and the ability to publish information, inrevolutionary ways—has emerged from relative obscurity to internationalprominence. Whereas in general an internet is a network of networks, theInternet is a global collection of interconnected local, mid-level, andwide-area networks that use the Internet Protocol (IP) as the networklayer protocol. Whereas the Internet embraces many local- and wide-areanetworks, a given local- or wide-area network may or may not form partof the Internet. For purposes of the present specification, a “wide-areanetwork” (WAN) is a network that links at least two LANs over a widegeographical area via one or more dedicated connections. The publicswitched telephone network is an example of a wide-area network. A“local-area network” (LAN) is a network that takes advantage of theproximity of computers to typically offer relatively efficient, higherspeed communications than wide-area networks.

In addition, a network may use the same underlying technologies as theInternet. Such a network is referred to herein as an “Intranet,” aninternal network based on Internet standards. Because the Internet hasbecome the most pervasive and successful open networking standard,basing internal networks on the same standard is very attractiveeconomically. Corporate Intranets have become a strong driving force inthe marketplace of network products and services.

The present invention is directed primarily toward the connection of anIntranet to the Internet and the connection of intranets to otherintranets, and any network connection where security is an issue.

As the Internet and its underlying technologies have become increasinglyfamiliar, attention has become focused on Internet security and computernetwork security in general. With unprecedented access to informationhas also come unprecedented opportunities to gain unauthorized access todata, change data, destroy data, make unauthorized use of computerresources, interfere with the intended use of computer resources, etc.As experience has shown, the frontier of cyberspace has its share ofscofflaws, resulting in increased efforts to protect the data,resources, and reputations of those embracing intranets and theInternet.

Firewalls are intended to shield data and resources from the potentialravages of computer network intruders. In essence, a firewall functionsas a mechanism, which monitors and controls the flow of data between twonetworks. All communications, e.g., data packets, which flow between thenetworks in either direction, must pass through the firewall; otherwise,security is circumvented. The firewall selectively permits thecommunications to pass from one network to the other, to providebidirectional security.

Ideally, a firewall would be able to prevent any and all securitybreaches and attacks. Although absolute security is indeed a goal to besought after, due to many variables (e.g., physical intrusion into thephysical plant) it may be difficult to achieve. However, in manyinstances, it is of equal if not greater importance to be alerted to anattack so that measures may be taken to thwart the attack or render itharmless, and to avoid future attacks of the same kind. Hence afirewall, in addition to security, should provide timely informationthat enables attacks to be detected.

Firewalls have typically relied on some combination of two techniquesaffording network protection: packet filtering and proxy services.

Packet filtering is the action a firewall takes to selectively controlthe flow of data to and from a network. Packet filters allow or blockpackets, usually while routing them from one network to another (oftenfrom the Internet to an internal network, and vice versa). To accomplishpacket filtering, a network administrator establishes a set of rulesthat specify what types of packets (e.g., those to or from a particularIP address or port) are to be allowed to pass and what types are to beblocked. Packet filtering may occur in a router, in a bridge, or on anindividual host computer.

Packet filters are typically configured in a “default permit stance”;i.e., that which is not expressly prohibited is permitted. In order fora packet filter to prohibit potentially harmful traffic, it must knowwhat the constituent packets of that traffic look like. However, it isvirtually impossible to catalogue all the various types of potentiallyharmful packets and to distinguish them from benign packet traffic. Thefiltering function required to do so is too complex. Hence, while mostpacket filters may be effective in dealing with the most common types ofnetwork security threats, this methodology presents many chinks that anexperienced hacker may exploit. The level of security afforded by packetfiltering, therefore, leaves much to be desired.

Recently, a further network security technique termed “statefulinspection” has emerged. Stateful inspection performs packet filteringnot on the basis of a single packet, but on the basis of some historicalwindow of packets on the same port. Although stateful inspection mayenhance the level of security achievable using packet filtering, it isas yet relatively unproven. Furthermore, although an historical windowof packets may enable the filter to more accurately identify harmfulpackets, the filter must still know what it is looking for. Building afilter with sufficient intelligence to deal with the almost infinitevariety of possible packets and packet sequences is liable to prove anexceedingly difficult task.

The other principal methodology used in present-day firewalls isproxies. In order to describe prior-art proxy-based firewalls, somefurther definitions are required. A “node” is an entity thatparticipates in network communications. A subnetwork is a portion of anetwork, or a physically independent network, that may share networkaddresses with other portions of the network. An intermediate system isa node that is connected to more than one subnetwork and that has therole of forwarding data from one subnetwork to the other (i.e., a“router”).

A proxy is a program, running on an intermediate system, that deals withservers (e.g., Web servers, FTP servers, etc.) on behalf of clients.Clients, e.g. computer applications which are attempting to communicatewith a network that is protected by a firewall, send requests forconnections to proxy-based intermediate systems. Proxy-basedintermediate systems relay approved client requests to target serversand relay answers back to clients.

Proxies require either custom software (i.e., proxy-aware applications)or custom user procedures in order to establish a connection. Usingcustom software for proxying presents several problems. Appropriatecustom client software is often available only for certain platforms,and the software available for a particular platform may not be thesoftware that users prefer. Furthermore, using custom client software,users must perform extra manual configuration to direct the software tocontact the proxy on the intermediate system. With the custom procedureapproach, the user tells the client to connect to the proxy and thentells the proxy which host to connect to. Typically, the user will firstenter the name of a firewall that the user wishes to connect through.The firewall will then prompt the user for the name of the remote hostthe user wishes to connect to. Although this procedure is relativelysimple in the case of a connection that traverses only a singlefirewall, as network systems grow in complexity, a connection maytraverse several firewalls. Establishing a proxied connection in such asituation starts to become a confusing maze, and a significant burden tothe user, since the user must know the route the connection is to take.

Furthermore, since proxies must typically prompt the user or the clientsoftware for a destination using a specific protocol, they areprotocol-specific. Separate proxies are therefore required for eachprotocol that is to be used.

Another problematic aspect of conventional firewall arrangements, from asecurity perspective, is the common practice of combining a firewallwith other packages on the same computing system. The firewall packageitself may be a combination of applications. For example, one well-knownfirewall is a combination Web server and firewall. In other cases,unrelated services may be hosted on the same computing platform used forthe firewall. Such services may include e-mail, Web servers, databases,etc. The provision of applications in addition to the firewall on acomputing system provides a path through which a hacker can potentiallyget around the security provided by the firewall. Combining otherapplications on the same machine as a firewall also has the result ofallowing a greater number of users access to the machine. The likelihoodthen increases that a user will, deliberately or inadvertently, cause asecurity breach.

There remains a need for a firewall that achieves both maximum securityand maximum user convenience, such that the steps required to establisha connection are transparent to the user. The present inventionaddresses this need.

SUMMARY OF THE INVENTION

The present invention, generally speaking, provides a firewall thatachieves maximum network security and maximum user convenience. Thefirewall employs “envoys” that exhibit the security robustness ofprior-art proxies and the transparency and ease-of-use of prior-artpacket filters, combining the best of both worlds. No traffic can passthrough the firewall unless the firewall has established an envoy forthat traffic. Both connection-oriented (e.g., TCP) and connectionless(e.g., UDP-based) services may be handled using envoys. Establishment ofan envoy may be subjected to a myriad of tests to “qualify” the user,the requested communication, or both. Therefore, a high level ofsecurity may be achieved.

Security may be further enhanced using out-of-band authentication. Inthis approach, a communication channel, or medium, other than the oneover which the network communication is to take place, is used totransmit or convey an access key. The key may be transmitted from aremote location (e.g., using a pager or other transmission device) ormay be conveyed locally using a hardware token, for example. To gainaccess, a hacker must have access to a device (e.g., a pager, a tokenetc.) used to receive the out-of-band information. Pager beep-back orsimilar authentication techniques may be especially advantageous inthat, if a hacker attempts unauthorized access to a machine while theauthorized user is n possession of the device, the user will be alertedby the device unexpectedly receiving the access key. The key is uniqueto each transmission, such that even if a hacker is able to obtain it,it cannot be used at other times or places or with respect to any otherconnection.

Using envoys, the added burden associated with prior-art proxy systemsis avoided so as to achieve full transparency-the user can use standardapplications and need not even know of the existence of the firewall. Toachieve full transparency, the firewall is configured as two sets ofvirtual hosts. The firewall is, therefore, “multi-homed,” each homebeing independently configurable. One set of hosts responds to addresseson a first network interface of the firewall. Another set of hostsresponds to addresses on a second network interface of the firewall. Inaccordance with one aspect of the invention, programmable transparencyis achieved by establishing DNS mappings between remote hosts to beaccessed through one of the network interfaces and respective virtualhosts on that interface. In accordance with another aspect of theinvention, automatic transparency may be achieved using code fordynamically mapping remote hosts to virtual hosts in accordance with atechnique referred to herein as dynamic DNS, or DDNS.

The firewall may have more than two network interfaces, each with itsown set of virtual hosts. Multiple firewalls may be used to isolatemultiple network layers. The full transparency attribute of a singlefirewall system remains unchanged in a multi-layered system: a user may,if authorized, access a remote host multiple network layers removed,without knowing of the existence of any of the multiple firewalls in thesystem.

Furthermore, the firewalls may be configured to also transparentlyperform any of various kinds of channel processing, including varioustypes of encryption and decryption, compression and decompression, etc.In this way, virtual private networks may be established whereby tworemote machines communicate securely, regardless of the degree ofproximity or separation, in the same manner as if the machines were onthe same local area network.

The problem of Internet address scarcity may also be addressed usingmulti-layer network systems of the type described. Whereas addresses onboth sides of a single firewall must be unique in order to avoid routingerrors, network segments separated by multiple firewalls may reuse thesame addresses.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention may be further understood from the followingdescription in conjunction with the appended drawings. In the drawings:

FIG. 1 is a block diagram of a multi-layered computer enterprise networkin which the present invention may be used;

FIG. 2 is a block diagram of a network similar to the network of FIG. 1but in which a two-sided firewall has been replaced by a three-sidedfirewall;

FIG. 3 is a block diagram showing in greater detail a special-purposevirtual host used for configuration of a firewall;

FIG. 4 is a block diagram of a load-sharing firewall;

FIG. 5 is a block diagram of one embodiment of the firewall of thepresent invention;

FIG. 6 is a block diagram illustrating the manner in which the presentfirewall handles connection requests;

FIG. 7 is an example of a portion of the master configuration file ofFIG. 5;

FIG. 8 is a block diagram illustrating in greater detail the structureof the present firewall; and

FIG. 9 is a block diagram of a combination firewall that allows the bulkof the entire Internet address space to be used on both sides of thefirewall.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present firewall provides a choke point used to control the flow ofdata between two networks. One of the two networks may be the Internet,or both of the two networks may be intranets—the nature and identity ofthe two networks is immaterial. The important point is that all trafficbetween the two networks must pass through a single, narrow point ofcontrolled access. A firewall therefore brings a great deal of leverageto bear on the problem of network security, allowing security measuresto be concentrated on this controlled access point. To avoid possiblesecurity compromises, the firewall should ideally run on a dedicatedcomputer, i.e. one which does not have any other user-accessibleprograms running on it that could provide a path via whichcommunications could circumvent the firewall.

One environment in which firewalls are particularly desirable is inenterprise network systems, in which a number of individual networksthat may be respectively associated with different departments ordivisions of a company, for example, are connected with one another. Insuch an environment, firewalls can be employed to restrict access to theindividual networks. While not limited to this particular situation, thepresent invention will be, described hereinafter in such a context, tofacilitate an understanding of its underlying principles.

Referring now to FIG. 1, assume that the accounting departments of tworemote corporate sites are networked, and that these two differentaccounting networks are to be connected via the Internet or a similarnon-secure, wide-area network. For purposes of illustration, a firstsite 101 having a first accounting network 103 might be located inCalifornia, and a second site 151 having a second accounting network 153might be located in Japan. Within each site, each accounting network maybe part of a larger corporate network (109, 159). Precautions arerequired to safeguard sensitive accounting data such that it cannot beaccessed over the general corporate network. A first firewall (105, 155)is used for this purpose. The first firewall is interposed between theaccounting network and the general corporate network.

A convenient way to place the two accounting networks in communicationwith each other is through the Internet 120, which comprises anotherlayer of a multi-layer network. As compared to other forms ofconnection, the Internet may be more economical, more easily accessible,and more robust. Connecting to the Internet, however, requires thataccess between the Internet and the respective sites be strictlycontrolled. A second firewall (107, 157) is used at each site for thispurpose.

In the following description, the present firewall is illustrated mostoften as a rectangle having along each of two edges thereof a networkconnection and a row of boxes representing multiple “homes,”corresponding to respective virtual hosts. A virtual host along one edgemay be used to initiate a connection only in response to a request fromthe network connection that enters the firewall at that edge. Theconnection, once established, is fully bidirectional, with the samevirtual host passing data between the originating network connection andthe network connection at the opposite edge of the firewall.

More generally, the firewall may be N-sided, having N networkconnections and being illustrated as an N-sided polygon. Any virtualhost may establish a connection between any pair of network connectionsso long as the connection originated from the network connectionadjoining that virtual host. Again, the connection, once established, isfully bidirectional.

The firewalls 105, 107, 155 and 157 are each of a construction to bemore particularly described hereinafter. Each firewall is multi-homing.This means that each firewall is configured as multiple virtual hostsrunning on a physical computer. In the example of FIG. 1, a firewall isdepicted as a single computer having multiple virtual hosts on each ofits two interfaces. In practice, the multiple virtual hosts can beconfigured in this manner or, alternatively, implemented in any numberof computers, as explained in detail hereinafter. Each virtual hostcorresponds to a “home”, i.e. a site via which a connection is madebetween the two networks on either side of the firewall. At differenttimes, the same virtual host might correspond to different homesassociated with different connections. At any given time, however, avirtual host represents one home. In the following description of theparticular example illustrated in FIG. 1, therefore, homes and virtualhosts are described as being synonymous with one another. Each virtualhost is fully independently configurable and unique from each of theother virtual hosts. Considering the firewall 105 as being exemplary ofeach of the firewalls 105, 107, 155 and 157, one set of hosts 105 aresponds to addresses on a first network interface of the firewall.Another set of hosts 105 b responds to addresses on a second networkinterface of the firewall.

Normally, in accordance with the prior art, connecting from one computerto another remote computer along a route traversing one or morefirewalls would require the user to configure a prior-art proxy for eachfirewall to be traversed. In accordance with one aspect of theinvention, however, programmable transparency is achieved byestablishing DNS mappings between remote hosts to be accessed throughone of the network interfaces and respective virtual hosts on thatinterface.

DNS is a distributed database system that translates host names to IPaddresses and IP addresses to host names (e.g, it might translate hostname omer.odyssey.com to 129.186.424.43). The information required toperform such translations is stored in DNS tables. Any program that useshost names can be a DNS client. DNS is designed to translate and forwardqueries and responses between clients and servers.

When a client needs a particular piece of information (e.g., the IPaddress of homer.odyssey.com), it asks its local DNS server for thatinformation. The local DNS server first examines its own local memory,such as a cache, to see if it already knows the answer to the client'squery. If not, the local DNS server asks other DNS servers, in turn, todiscover the answer to the client's query. When the local DNS servergets the answer (or decides that for some reason it cannot), it storesany information it received and answers the client. For example, to findthe IP address for homer.odyssey.com, the local DNS server first asks apublic root name server which machines are name servers for the corndomain. It then asks one of those “com” name servers which machines arename servers for the odyssey.com domain, and then it asks one of thosename servers for the IP address of homer.odyssey.com.

This asking and answering is all transparent to the client. As far asthe client is concerned, it has communicated only with the local server.It does not know or care that the local server may have contactedseveral other servers in the process of answering the original question.

Referring still to FIG. 1, the firewall 105 is associated with arespective domain name server 115. Each of the other firewalls 107, 155,157 is also associated with a respective domain name server 117, 165,167. The domain name server may be a dedicated virtual host on the samephysical machine as the firewall. Alternatively, the domain name servermay be a separate machine. A domain name server is provided for eachlayer in the multi-layer network.

In operation, assume now that a client C on the accounting network 103is to connect to a host D on the accounting network 153 on a repeatedbasis. The DNS tables of each of the firewalls may then be programmed soas to enable such a connection to be established transparently, withoutthe user so much as being aware of any of the firewalls 105, 107, 155,157—hence the term programmable transparency. Both forward and reversetable entries are made in the domain name servers. Within a domain nameserver 115, for example, D (the name of the remote host, e.g.,machl.XYZcorp.com) might be mapped to a virtual host having a networkaddress that concludes with the digits 1.1, and vice versa. Within thedomain name server 117, D might be mapped to 5.4, within the domain nameserver 167, D might be mapped to 3.22, and within the domain name server165, D might be mapped to 4.5, where each of the foregoing addresses hasbeen randomly chosen simply for purposes of illustration. Finally,within a conventional DNS server (not shown), D is mapped to the “real”network address (e.g, the IP address) of D, say, 55.2.

When client C tries to initiate a connection to host D using the name ofD, DNS operates in the usual manner to propagate a name request tosuccessive levels of the network until D is found. The DNS server for Dreturns the network address of D to a virtual host on the firewall 155.The virtual host returns its network address to the virtual host on thefirewall 157 from which it received the lookup request, and so on, untila virtual host on the firewall 105 returns its network address (insteadof the network address of D) to the client C. This activity is alltransparent to the user.

Note that at each network level, the virtual host handling a connectionis indistinguishable to the preceding virtual (or real) host from Ditself. Thus, to the client C, the virtual host 1.1 is D, to the virtualhost 1.1, the virtual host 5.4 is D, etc. There is no limit to thenumber of network layers that may be traversed in this fashion, or anydifference in operation as the number of network layers increases. Thismulti-layering capability allows two remote machines to communicate withthe same ease as if the machines were on the same local area network,regardless of the degree of proximity or separation.

Programmable transparency is based upon what may be termed “envoys.”Important differences exist between envoys as described herein andconventional proxies. Normally, a prior-art proxy would have to promptthe user to enter a destination. To enable such prompting to occur,different proxy code has conventionally been required for each protocolto be proxied. Using programmable transparency, the destination isprovided to an envoy using DNS and/or DDNS as described more fullyhereinafter. There is therefore no need to always prompt the user for adestination and no need for the user to always enter a destination(although a mode of operation may be provided in which the user isprompted for and does enter a destination). Instead of a collection ofconventional protocol-specific proxies, a single generic envoy programmay be used.

The foregoing discussion has focused on the programmable transparencyaspects of the present firewall. Of course, a primary function of afirewall is to selectively allow and disallow communications. Hence, inthe course of establishing a connection, each virtual host examines aconfiguration table to determine, based on the particulars of therequested connection—source, destination, protocol, time-of-day, portnumber, etc.—whether such a connection will be allowed or disallowed.The process by which connection requests may be scrutinized is describedin greater detail in U.S. patent application Ser. No. 08/595,957, filedFeb. 6, 1996, now issued as U.S. Pat. No. 5,826,014, and incorporatedherein by reference.

The firewall may have more than two network interfaces, each with itsown set of virtual hosts. Referring to FIG. 2, for example, thetwo-sided firewall discussed previously in relation to FIG. 1 has beenreplaced by a three-sided firewall 205. An accounting department network203 and a general corporate network 209 are connected to the firewall205 as previously described. Also connected to the firewall 205 is anengineering department network 202. In general, a firewall may beN-sided, having N different network connections. For each networkconnection there may be multiple virtual hosts, which operate in themanner described above.

Referring again to FIG. 1, configuration of the firewalls may be easilyaccomplished by providing on each firewall a special-purpose virtualhost that runs “Configurator” software-software that provides aWeb-based front-end for editing configuration files for the othervirtual hosts on the firewall. The special-purpose virtual host (116,118, 166 and 168 in FIG. 1) is preferably configured so as to allow onlya connection from a specified secure client. The Configurator softwarerunning on the special-purpose virtual host is HTML-based in order toprovide an authorized system administrator a familiar “point-and-click”interface for configuring the virtual firewalls in as convenient amanner as possible using a standard Web browser. Since Web browsers areavailable for virtually every platform, there results a generic GUIinterface that takes advantage of existing technology.

Referring more particularly to FIG. 3, there is shown a firewall 305having a first set of virtual hosts 305 a, a second set of virtual hosts305 b, and a DNS/DDNS module 315. The virtual hosts do not require andpreferably do not have access to the disk files of the underlyingmachine. Instead, virtual host processes are spawned from a daemonprocess that reads a master configuration file from disk once atstart-up. The DNS/DDNS module and the special-purpose virtual host 317do have access to disk files 316 of the underlying physical machine. Thespecial-purpose virtual host 317, shown in exploded view, runs anHTML-based Configurator module 319. Access to the special-purposevirtual host is scrutinized in accordance with rules stored on diskwithin configuration files 321. Typically, these rules will restrictaccess to a known secure host, will require at least username/passwordauthentication and optionally more rigorous authentication. Once accessis granted, the Configurator module will send to the authorizedaccessing host a first HTML page. From this page, the user may navigatethrough different HTML pages using a conventional Web browser and maysubmit information to the special-purpose virtual host. Thespecial-purpose virtual host will then use this information to updatethe configuration files 321.

As will be appreciated more fully from the description of FIG. 7hereinafter, configuration is based on host names, not IP addresses. Asa result, two mappings are required in order to handle a connectionrequest. The requester needs an IP address. To this end, a first mappingmaps from the host name received in the connection request to the IPaddress of a virtual host. The virtual host, however, needs the hostname of the host to be connected to. To this end, the second mappingmaps back to the host name in order to read an appropriate configurationfile or sub-file based on the host name. Thus, when a connection requestis received for homer. odyssey.com, DNS/DDNS in effect says to therequester “Use virtual host X.X.X.X,” where X.X.X.X represents an IPaddress. Then, when the virtual host receives the request, it performs areverse lookup using DNSIDDNS, whereupon DNSIDDNS in effect says“Virtual host X.X.X.X, use the configuration information for homer.odyssey.com.”

Security may be further enhanced, both with respect to connections tothe special-purpose virtual host for configuration purposes and alsowith respect to connections generally, by using out-of-band userauthentication. Out-of-band authentication uses a channel, a device orany other communications method or medium which is different from thatover which the inter-network communication is to take place to transmitor convey an access key. Hence, in the example of FIG. 1, the firewall155, upon receiving a connection request from a particular source, mightsend a message, including a key, to a pager 119 of the authorized userof the source client. The user might be requested to simply enter thekey. In more sophisticated arrangements, the user may be required toenter the key into a special hardware token to generate a further key.To gain access, a hacker must therefore steal one or more devices (e.g,a pager used to receive the out-of-band transmissions, a hardware token,etc.). Furthermore, if a hacker attempts unauthorized access to amachine while the authorized user is in possession of the pager or othercommunications device, the user will be alerted by the deviceunexpectedly receiving a message and access key.

Other methods may be used to communicate out-of-band so as to deliverthe required access key. For example, the firewall 155 might send a faxto the fax number of the user of the source machine. Alternatively,identifying information may be sent to the user across the network,after which the user may be required to dial an unpublished number andenter the identifying information in order to receive a voice messagecontaining the required key.

In each of the foregoing methodologies, the key is connection-specific.That is, once the connection is closed or the attempt to establish aconnection is abandoned, if a user again attempts to establish aconnection, the key that previously applied or would have applied is nolonger applicable.

The different virtual hosts may also be configured to perform channelprocessing of various sorts as traffic traverses different networksegments. Channel processing may include encryption, decryption,compression, decompression, image or sound enhancement, contentfiltering, etc. Channel processing is the processing performed on dataflowing through a communications channel to enhance some attribute ofthe data, such as security, reproduction quality, etc. In someinstances, channel processing may actually affect the content of thedata, for example “bleeping” obscenities by replacing them with adistinctive character string. Alternatively, channel processing mayintervene to cause a connection to be closed if the content to be senton that connection is found to be objectionable.

Channel processing may be performed using existing standard softwaremodules. In the case of encryption and decryption, for example, modulesfor DES, RSA, Cylink, SET, SSL, and other types of encryption/decryptionand authentication may be provided on the firewall. In the case ofcompression and decompression, standard modules may include MPEG, JPEG,LZ-based algorithms, etc. Based on information contained in theconfiguration files, information passing through the firewall may beprocessed using one or more such modules depending on the direction ofdata flow.

Channel processing may be used to perform protocol translation, forexample between IP and some other protocol or protocols. One problemthat has recently received attention is that of using IP for satelliteuplink and downlink transmissions. The relatively long transit timesinvolved in satellite transmissions can cause problems using IP. Onepossible solution is to perform protocol translation between IP and anexisting protocol used for satellite transmissions. Such protocoltranslation could be performed transparently to the user using afirewall of the type described.

Channel processing may also be used to perform virus detection. Blanketvirus detection across all platforms is a daunting task and may not bepractical in most cases. A system administrator may, however, configurethe system to perform specified virus checking for specified hosts.

Encryption and decryption are particularly important to realizing thepotential of the Internet and network communications. In the examplejust described, on the network segment between firewall 105 and 107, DESencryption might be used, in accordance with the configuration file onfirewalls 105 and 107. Across the Internet, between firewall 107 andfirewall 155, triple DES may be applied. On the network segment betweenfirewall 155 and 157 RSA encryption may be used. Alternatively,encryption could be performed between firewalls 105 and 155 and alsobetween 107 and 155 and also between 157 and 155. Thus the firewall 157may then decrypt the cumulative results of the foregoing multipleencryptions to produce clear text to be passed on to host D. Combiningencryption capabilities with programmable transparency as describedabove allows for the creation of virtual private networks-networks inwhich two remote machines communicate securely through cyberspace in thesame manner as if the machines were on the same local area network.

Using DDNS, mappings between a host machine and a virtual host areperformed dynamically, on-the-fly, as required. Any of variousalgorithms may be used to select a virtual host to handle a connectionrequest, including, for example, a least-recently-used strategy. Atime-out period is established such that, if a connection has beenclosed and is not reopened within the time-out period, the virtual hostthat was servicing that connection may be re-mapped so as to serviceanother connection—i.e., it becomes associated with a different node. Inthis manner, the number of clients that may be serviced is vastlyincreased. In particular, instead of the number of clients that may usea particular network interface being limited to the number of virtualhosts on that interface as would be the case using static DNS entries,using DDNS, any number of hosts may use a particular network interfacesubject to availability of a virtual host. Moreover, instead of makingstatic DNSentries at each level of a multi-level network, using DDNS,such entries are rendered unnecessary.

DDNS allows for dynamic load sharing among different physical machines.Hence, instead of a single physical machine, one or more of thefirewalls in FIG. 1 might be realized by two or more physical machines.When performing mapping, DDNS can take account of the load on thephysical machine using conventional techniques. If one physical machinefails, the functions of that machine may still be performed by virtualhosts running on another physical machine. DDNS likewise allows afirewall to be scaled-up very easily, by adding one or more additionalphysical machines and configuring those machines as additional virtualhosts having identical configurations as on the existing physicalmachine or machines, but different network addresses.

Referring more particularly to FIG. 4, a load-sharing firewall isrealized using a first firewall 407 and a second firewall 408 connectedin parallel to a network 420 such as the Internet. Redundancy isprovided by conventional DNS procedures. That is, in DNS, redundant nameservers are required by the DNS specification. If a query addressed toone of the redundant name servers does not receive a response, the samequery may then be addressed to another name server. The same resultholds true in FIG. 4. If one of the physical firewall machines 407 or408 is down, the other machine enables normal operation to continue.

The configuration of FIG. 4, however, further allows the physicalfirewall machines 407 and 408 to share the aggregate processing load ofcurrent connections. Load sharing may be achieved in the followingmanner. Each of the DNS modules of all of the machines receive all DNSqueries, because the machines are connected in parallel. Presumably, theDNS module of the machine that is least busy will be the first torespond to a query. An ensuing connection request is then mapped to avirtual host on the responding least-busy machine.

As the popularity and use of the Internet continues to grow, there is aconcern that all available addresses will be used, thereby limitingfurther expansion. An important result of DDNS is that network addressesmay be reused on network segments between which at least one firewallintervenes. More particularly, the addresses which are employed onopposite sides of a firewall are mutually exclusive of one another toavoid routing errors. Referring again to the example of FIG. 1, users ofthe Internet 120 are unaware of the addresses employed on a networksegment 110. Certain addresses can be reserved for use behind afirewall. As shown in FIG. 1, for example, the subset of addressesrepresented as 192.168.X.X can be used on the network segment 110. Solong as an address is not used on both sides of the same firewall, norouting errors will be introduced. Therefore, the same set of addressescan be used on the network segment 160, which is separated from theInternet via the firewall 157. On network segment 102 and networksegment 152, the entire address space may be used, less those addressesused on the segments 110, 120 of the respective firewalls 105 and 155.Thus by isolating Internet Service Providers (ISPs) from the Internet atlarge using firewalls of the type described, each ISP could enjoy use ofalmost the full address space of the Internet (232 addresses).Exhaustion of network addresses, presently a grave concern within theInternet community, is therefore made highly unlikely.

Address reuse may be further facilitated by providing multiplemulti-homing firewall programs running on a single physical machine anddefining a virtual network connection between the two firewall programsusing an IP address within the range 192.168.X.X as describedpreviously. To the user and to the outside world, this “compoundfirewall” appears as a single multi-homing firewall of the typepreviously described. However, since internally the firewall is reallytwo firewalls, the entire Internet address space may be used on bothsides of the firewall, except for the addresses 192.168.X.X. Thisconfiguration is illustrated in FIG. 9.

In essence, the use of firewalls as presently described allows theprevailing address model of network communications to be transformedfrom one in which IP addresses are used for end-to-end transport to onein which host names are used for end-to-end transport, with IP addressesbeing of only local significance. The current use of IP addresses forend-to-end transport may be referred to as address-based routing. Usingaddress-based routing, address exhaustion becomes a real and pressingconcern. The use of host names for end-to-end transport as presentlydescribed may be referred to as name-based routing. Using name-basedrouting, the problem of address exhaustion is eliminated.

The firewall as described also allows for envoys to handleconnectionless (e.g., UDP-User Datagram Protocol) traffic, which hasbeen problematic in the prior art. UDP is an example of a connectionlessprotocol in which packets are launched without any end-to-endhandshaking. In the case of many prior-art firewalls, UDP traffic goesright through the firewall unimpeded. The present firewall handlesconnectionless traffic using envoys. Rules checking is performed on afirst data packet to be sent from the first computer to the secondcomputer. If the result of this rules checking is to allow the firstpacket to be sent, a time-out limit associated with communicationsbetween the first computer and the second computer via UDP isestablished, and the first packet is sent from one of the virtual hoststo the second computer on behalf of the first computer. Thereafter, forso long as the time-out limit has not expired, subsequent packetsbetween the first computer and the second computer are checked and sent.A long-lived session is therefore created for UDP traffic. After thetime-out limit has expired, the virtual host may be remapped to adifferent network address to handle a different connection.

The construction of a typical firewall in accordance with the presentinvention will now be described in greater detail. Referring to FIG. 5,the firewall is a software package that runs on a physical machine 500.One example of a suitable machine is a super-minicomputer such as aSparcServer machine available from Sun Microsystems of Menlo Park,Calif. The firewall may, however, run on any of a wide variety ofsuitable platforms and operating systems. The present invention is notdependent upon a particular choice of platform and operating system.

Conventionally, the logical view of the firewall on the Internet, anintranet, or some other computer network is the same as the physicalview of the underlying hardware. A single network address has beenassociated with a single network interface. As a result, no mechanismhas existed for distinguishing between communications received on asingle network interface and hence directing those communications todifferent logical machines.

As described previously, this limitation may be overcome by recognizingmultiple addresses on a single network interface, mapping betweenrespective addresses and respective virtual hosts, and directingcommunications to different addresses to different virtual hosts.Therefore, the present firewall, although it runs on a limited number ofphysical machines, such as a single computer 500, appears on the networkas a larger number of virtual hosts VH1 through VHn. Each virtual hosthas a separate configuration sub-file (sub-database) C1, C2, etc., thatmay be derived from a master configuration file, or database, 510. Theconfiguration sub-files are text files that may be used to enable ordisable different functions for each virtual host, specify whichconnections and types of traffic will be allowed and which will bedenied, etc. Because the configuration files are text files, they may beeasily modified at any time following initial installation.

Preferably, each virtual host also has its own separate log file L1, L2,etc. This feature allows for more precise and more effective securitymonitoring.

The firewall is capable of servicing many simultaneous connections. Thenumber of allowable simultaneous connections is configurable and may belimited to a predetermined number, or may be limited not by number butonly by the load currently experienced by the physical machine. Thenumber of maximum allowable connections or the maximum allowable machineload may be specified in the configuration file.

As described in greater detail in connection with FIG. 7, eachconfiguration file C1, C2, etc., may have an access rules database 513,including an Allow portion 515, a Deny portion 517, or both. Using theaccess rules database 513, the firewall selectively allows and deniesconnections to implement a network security policy.

The firewall is self-daemoning, meaning that it is not subject to thelimitations ordinarily imposed by the usual Internet meta-daemon, INETD,or other operating-system limitations. Referring to FIG. 6, when thefirewall is brought up, it first reads in the master configuration fileand then becomes a daemon and waits for connection requests. When aconnection request is received, the firewall spawns a process, orexecution thread, to create a virtual host VHn to handle that connectionrequest. Each process runs off the same base code. However, each processwill typically use its own sub-database from within the masterconfiguration database to determine the configuration of that particularvirtual host. Processes are created “on demand” as connection requestsare received and terminate as service of those connection requests iscompleted.

An example of a portion of a master configuration file is shown in FIG.7. Within the master configuration file database, different portions ofthe file form sub-databases for different virtual hosts. Eachsub-database may specify a root directory for that particular virtualhost. Also as part of the configuration file of each virtual host, anaccess rules database is provided governing access to and through thevirtual host, i.e., which connections will be allowed and whichconnections will be denied. The syntax of the access rules database issuch as to allow greater flexibility in specifying not only whatmachines are or are not to be allowed access, but also when such accessis allowed to occur and which users are authorized. The access rulesdatabase may have an Allow portion, a Deny portion or both. Processingwith respect to the Allow database is performed prior to processing withrespect to the Deny database. Therefore, if there is an entry for therequested connection in the Allow database and no entry for thatconnection in the Deny database, then the connection will be allowed. Ifthere is no Allow database and no entry in the Deny database, then theconnection will also be allowed. If there is an entry for the requestedconnection in the Deny database, then the connection will be deniedregardless. Machines may be specified by name or by IP address, and mayinclude “wildcards,” address masks, etc., for example: MisterPain.com,*.srmc.com, 192.168.0.*, 192.168.0.0/24, and so on.

Time restrictions may be included in either the Allow rules or the Denyrules. For example, access may be allowed from lam to 12 pm;alternatively, access may be denied from 12 pm to 1 am. Also, rules maybe defined by identifiers, such as RULE1, RULE2, etc., and usedelsewhere within the configuration sub-file of the virtual host tosimplify and alleviate the need for replication.

All access rules must be satisfied in order to gain access to a virtualhost. Depending on the virtual host, however, and as specified withinthe configuration sub-file, separate access scrutiny may be appliedbased on DNS entries. The accessing machine may be required to have aDNS (Domain Name Services) entry. Having a DNS entry lends at least somelevel of legitimacy to the accessing machine. Furthermore, the accessingmachine may in addition be required to have a reverse DNS entry.Finally, it may be required that the forward DNS entry and the reverseDNS entry match each other, i.e., that an address mapped to from a givenhost name map back to the same host name.

If access is granted and a connection is opened, when the connection islater closed, a log entry is made recording information about thataccess. Log entries may also be made when a connection is opened, asdata transport proceeds, etc.

Referring now to FIG. 8, the logical structure of the present firewallis shown in greater detail. The main execution of the firewall iscontrolled by a daemon. In FIG. 8, the daemon includes elements 801, 803and 805. Although the daemon mode of operation is the default mode, thesame code can also be run interactively under the conventional INETDdaemon. Hence, when the firewall is first brought up, command-lineprocessing is performed in block 801 to determine the mode of operation(daemon or interactive), which configuration file to read, etc. Forpurposes of the present discussion, the daemon mode of operation, whichis the default, will be assumed.

In the daemon mode of operation, a process first reads the configurationfile before becoming a daemon. By daemonizing after the configurationfile (e.g., the master configuration file) has been read, theconfiguration file in effect becomes “hard coded” into the program suchthat the program no longer has to read it in. The daemon then waits toreceive a connection request.

When a connection request is received, the daemon spawns a process tohandle the connection request. This process then uses a piece of codereferred to herein as an INET Wrapper 810 to check on the local side ofthe connection and the remote side of the connection to determine, inaccordance with the appropriate Allow and Deny databases, whether theconnection is to be allowed.

First the address and name (if possible) are obtained of the virtualhost for which a connection is requested. Once the virtual host has beenidentified by name or at least by IP address, the master configurationdatabase is scanned to see if a corresponding sub-database exists forthat virtual host. If so, the sub-database is set as the configurationdatabase of the virtual host so that the master configuration databaseneed no longer be referred to. If no corresponding sub-database isfound, then by default the master configuration database is used as theconfiguration database. There may be any number of virtual hosts, allindependently configurable and all running on the same physical machine.The determination of which virtual host the process is to become is madein block 803, under the heading of “multi-homing.”

Once the process has determined which host it is, immediatelythereafter, the process changes to a user profile in block 805 asdefined in the configuration, so as to become an unprivileged user. Thisstep of becoming an unprivileged user is a security measure that avoidsvarious known security hazards. The INET Wrapper is then used to checkon the remote host, i.e., the host requesting the connection. First, theconfiguration database is consulted to determine the level of accessscrutiny that will be applied. (The default level of access scrutiny isthat no DNS entry is required.) Then, the address and name (if possible)are obtained of the machine requesting the connection, and theappropriate level of access scrutiny is applied as determined from theconfiguration database.

If the remote host satisfies the required level of access scrutinyinsofar as DNS entries are concerned, the INET Wrapper gets the Allowand Deny databases for the virtual host. First the Allow database ischecked, and if there is an Allow database but the remote host is notfound in it, the connection is denied. Then the Deny database ischecked. If the remote host is found in the Deny database, then theconnection is denied regardless of the allow database. All other rulesmust also be satisfied, regarding time of access, etc. If all the rulesare satisfied, then the connection is allowed.

Once the connection has been allowed, the virtual host process invokescode 818 that performs protocol-based connection processing and,optionally, code 823 that performs channel processing (encryption,decryption, compression, decompression, etc.). When processing iscompleted, the connection is closed, if it has not already been closedimplicitly.

It will be appreciated by those of ordinary skill in the art that theinvention can be embodied in other specific forms without departing fromthe spirit or essential character thereof. The presently disclosedembodiments are therefore considered in all respects to be illustrativeand not restrictive. The scope of the invention is indicated by theappended claims rather than the foregoing description, and all changeswhich come within the meaning and range of equivalents thereof areintended to be embraced therein.

1. A virtual private network comprising: a first private network, thefirst private network including: a first firewall interposed between afirst private network and a public network, and a second firewallinterposed between a first client machine and the first firewallmachine; a second private network, the second private network including:a third firewall interposed between the second private network and thepublic network, and a fourth firewall interposed between a second clientmachine and the third firewall; an encrypted path for traffic flowingbetween the first and second client machines over the public network;and wherein the encrypted path comprises encryption of a first type fortraffic said first and second firewalls and said third and fourthfirewalls, and encryption of a second type is used between the first andsecond private networks for traffic flowing over the public network. 2.The virtual private network of claim 1, further comprising a dedicateddomain name server associated with each of the firewalls forestablishing DNS mappings for the virtual private network.
 3. Thevirtual private network of claim 2, where the dedicated domain nameserver comprises a virtual host on the same physical machine as any ofsaid firewalls.
 4. The virtual private network of claim 3, wherein saidfirst, second, third, or fourth firewalls further comprises a pluralityof virtual hosts, each of said virtual hosts corresponding to a homethrough which a connection may be made.
 5. The virtual private networkof claim 4, wherein said domain name server responds with addressinformation to the virtual host responding to a connection request. 6.The virtual private network of claim 1, wherein any of said first,second, third, or fourth firewalls further comprise a configurator forproviding a web-based front-end for configuration through apoint-and-click interface using a web browser.
 7. A virtual privatenetwork comprising: a first private network, the first private networkincluding: first firewall means interposed between a first privatenetwork and a public network, and second firewall means interposedbetween a first client machine and the first firewall machine; a secondprivate network, the second private network including: third firewallmeans interposed between the second private network and the publicnetwork, and fourth firewall means interposed between a second clientmachine and the third firewall; means for providing an encrypted pathfor traffic flowing between the first and second client machines overthe public network; and means for providing encryption of a first typefor traffic said first and second firewalls means and said third andfourth firewalls means, and means for providing encryption of a secondtype is used between the first and second private networks for trafficflowing over the public network.
 8. The virtual private network of claim7, further comprising dedicated domain name server means forestablishing DNS mappings for the virtual private network associatedwith each of the firewalls.
 9. The virtual private network of claim 8,where the dedicated domain name server means comprises virtual hostmeans on the same physical machine as any of said firewall means. 10.The virtual private network of claim 9, wherein said any of first,second, third, or fourth firewalls further comprises a plurality ofvirtual host for providing a home through which a connection may bemade.
 11. The virtual private network of claim 10, wherein said domainname server means responds with address information to the virtual hostresponding to a connection request.
 12. The virtual private network ofclaim 7, wherein any of said first, second, third, or fourth firewallsfurther comprise configurator means for providing a web-based front-endfor configuration through a point-and-click interface using a webbrowser.